package com.tbynet.jwp.service.spi;

import com.jfinal.kit.Ret;
import com.tbynet.jwp.model.TermTaxonomy;
import com.tbynet.jwp.model.Terms;

/**
 * 分类服务编排管理类
 * @ClassName: TermManager
 * @Description: 负责分类相关业务的编排和事务管理，协调多个Service完成复杂业务操作
 * @Author: 佰亿互联
 * @Date: 2025年11月4日
 *
 * @Copyright: 2025 www.tbynet.com Inc. All rights reserved.
 * 注意: 本内容仅限于内部传阅，禁止外泄以及用于其他的商业目
 */
public interface TermManager {

    /**
     * 创建分类完整业务流程
     * Manager层负责事务管理和服务编排
     * @param term 分类项
     * @param taxonomy 分类法
     * @return 操作结果
     */
    Ret createTerm(Terms term, TermTaxonomy taxonomy);

    /**
     * 更新分类完整业务流程
     * Manager层负责事务管理和服务编排
     * @param term 分类项
     * @param taxonomy 分类法
     * @return 操作结果
     */
    Ret updateTerm(Terms term, TermTaxonomy taxonomy);

    /**
     * 删除分类完整业务流程
     * Manager层负责事务管理和服务编排
     * @param termId 分类ID
     * @param taxonomy 分类法类型
     * @return 操作结果
     */
    Ret deleteTerm(Object termId, String taxonomy);

    /**
     * 为对象设置分类关系
     * @param objectId 对象ID
     * @param termId 分类项ID
     * @param taxonomy 分类法类型
     * @return 操作结果
     */
    Ret setObjectTermRelationship(Object objectId, Object termId, String taxonomy);

    /**
     * 删除对象的分类关系
     * @param objectId 对象ID
     * @param taxonomy 分类法类型
     * @return 操作结果
     */
    Ret removeObjectTermRelationships(Object objectId, String taxonomy);
}